package ve.lm.hrms_cy.Entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.time.LocalDateTime;

@TableName("request")
public class RequestBill {

    private Long id;

    @TableField("userId")
    private Long userId;

    @TableField("employeeId")
    private Long employeeId;

    @TableField("description")
    private String description;

    @TableField("result")
    private String result;

    @TableField("checkId")
    private Long checkId;

    @TableField("createTime")
    private LocalDateTime createTime;

    @TableField("status")
    private String status;

    public RequestBill() {}

    @JsonCreator
    public RequestBill(
            @JsonProperty("userId") Long userId,
            @JsonProperty("employeeId") Long employeeId,
            @JsonProperty("description") String description,
            @JsonProperty("result") String result,
            @JsonProperty("checkId") Long checkId,
            @JsonProperty("createTime") LocalDateTime createTime,
            @JsonProperty("status") String status
    ) {
        this.userId = userId;
        this.employeeId = employeeId;
        this.description = description;
        this.result = result;
        this.checkId = checkId;
        this.createTime = createTime;
        this.status = status;
    }

    // Getter & Setter methods
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    public Long getUserId() { return userId; }
    public void setUserId(Long userId) { this.userId = userId; }

    public Long getEmployeeId() { return employeeId; }
    public void setEmployeeId(Long employeeId) { this.employeeId = employeeId; }

    public String getDescription() { return description; }
    public void setDescription(String description) { this.description = description; }

    public String getResult() { return result; }
    public void setResult(String result) { this.result = result; }

    public Long getCheckId() { return checkId; }
    public void setCheckId(Long checkId) { this.checkId = checkId; }

    public LocalDateTime getCreateTime() { return createTime; }
    public void setCreateTime(LocalDateTime createTime) { this.createTime = createTime; }

    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }
}
